package io;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 使用缓冲字符输入流按行读取字符串
 */
public class BRDemo {
    public static void main(String[] args) throws IOException {
        //将当前程序源代码输出到控制台上
        //文件字节输入流（低级流，字节流）。将字节从文件中读取出来
        FileInputStream fis = new FileInputStream(
                "./src/main/java/io/BRDemo.java"
        );
        //转换流（高级流，字符流）。1：衔接字符与字节流 2：将读取的字节转换为字符
        InputStreamReader isr = new InputStreamReader(fis);
        //缓冲流（高级流，字符流）。块读文本数据加速。按行读取字符串
        BufferedReader br = new BufferedReader(isr);
        /*
        缓冲字符输入流提供的方法：
        String readLine()
        读取一行字符串（读取到换行符停止）并将其返回（不含最后的换行符）
        如果读取的是空行（只有一个换行符）则返回空字符串
        若读取到了流的末尾则返回null
         */
        String line;
        while((line = br.readLine()) != null){
            System.out.println(line);
        }
    }
}
